import router from "../router"
import $bus from "../utils/bus"
//全局前置钩子

//只要进入页面之前都会调用

//返回值:
//1.false 阻止路由的进入

//2.返回一个路径对象，终止进入to的路径，转而进入return的路径

//需求:用户未登录的情况下，不允许访问其它页面(判断本地是否有token，如果有就放行，如果没有就重新跳转到登入页)

//如果登入了，就可以访问其它页面

router.beforeEach((to,from)=>{
    console.log('each-to---',to)
    console.log('each-from---',from)

    let token = sessionStorage.getItem("qf-token")

    if(!token){
        //没有token,说明用户没有登入
        if(to.path!=='/login')
        //没登入，访问的还不是登入页，那么重新给它跳转到登入页
        return{
            path:"/login"
        }
    }

})

//全局后置钩子
//路由元信息，每个路由都有一个meta属性，可以给路由配置添加一些额外的标识和属性
router.afterEach((to,from)=>{
    console.log("after-to---",to)
    console.log("after-from---",from)

    //通过to.matched属性，来获取面包屑需要的数据，要把数据传递给app组件中的data

    $bus.$emit('breadChange',to.matched)
})

//全局解析守卫
router.beforeResolve((to,from)=>{
    console.log('resolve-to',to)
    console.log('resolve-from',from)
})

